class MyClass<T>{

}

public class Test03 {
    public static void main(String[] args) {
        MyClass<Integer> obj1 = new MyClass<>();
        MyClass<String> obj2 = new MyClass<>();

        MyClass<String> obj3 = obj2;
//        obj3 =obj1;//不同类型的泛型参数

        //创建一种引用 ， 能够指向多种不同类型的泛型参数的对象？ 使用到通配符了
        MyClass<?> obj4 = obj2;
        obj4 =obj1;

        //直接使用？ 可以接受任何类型的泛型
        MyClass<? extends Number> obj5 = obj1;//obj5 只能匹配Number及其子类的泛型类型

        //此处的通配符，只能匹配到 Integer 及其子类
        MyClass<? super Integer> obj6 = obj1;
//        obj6 = new MyClass<Double>();//发现不能操作

    }
}
